﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace RPG_The_Game.Objetos
{
    class Gato:Objetos.Sprite
    {
         //protected GameWindow window;
        //protected Texture2D imagem;
        //protected Vector2 posicao;
        //protected Vector2 velocidade;
        //protected bool visivel;

        SoundEffect efeitoSonoro;
        /// <summary>
        /// Para aonde o rato vai se mover
        /// </summary>
        public Vector2 posMouse;
        /// <summary>
        /// Calcular a diferença entre a posição rato e a do mouse
        /// </summary>
        public Vector2 diferenca;
        public Vector2 PosMouse


        {
            get
            {
                return posMouse;
            }

            set
            {
                posMouse = value;
            }
        }
        public Vector2 Posicao
        {
            get
            {
                return posicao;
            }

            set
            {
                posicao = value;
            }
        }

        public animacao andando;
        animacao parado;
        animacao atacando;
        animacao pulando;

        public Gato(Texture2D textura, Vector2 posicao, Vector2 velocidade, GameWindow window)
            :base(textura)
        {
            this.textura = textura;
            this.posicao = posicao;
            this.velocidade = velocidade;
            this.window = window;
        }

        public Gato(Texture2D textura, Vector2 posicao, Vector2 velocidade, GameWindow window, SoundEffect efeitoSonoro)
            : base(textura)
        {
            this.textura = textura;
            this.window = window;
            this.efeitoSonoro = efeitoSonoro;
            this.posicao = posicao;
            this.velocidade = velocidade;

            andando = new animacao();
            andando.qtd_quadros = 1;
            andando.quadros_seg = 8;
            andando.Y = 0;
            andando.quadro_X = textura.Width / andando.qtd_quadros;
            andando.quadro_Y = textura.Height;

            destino = new Rectangle(0, 0, andando.quadro_X, andando.quadro_Y);

        }

        public override void Update(GameTime gameTime) 
        {

        }

        public void Update(GameTime gameTime, Vector2 posicaoRato)
        {
            colisao.X = (int)posicao.X;
            colisao.Y = (int)posicao.Y;
            colisao.Width = (int)andando.quadro_X;
            colisao.Height = (int)andando.quadro_Y;

            // this.posMouse.X = mouse_atual.X;
            //this.posMouse.Y = mouse_atual.Y;
            //Console.WriteLine(posMouse.X.ToString() + " " + posMouse.Y.ToString());
            Vector2.Lerp(ref posicao, ref posicaoRato, 0.01f, out posicao);
        }

        public bool Bateu(Sprite sprite)
        {
            if (this.colisao.Intersects(sprite.Colisao))
            {
                return true;
            }

            else
                return false;
        }

           
        //public void Draw(SpriteBatch spriteBatch, GameTime gameTime)
        //{
        //     spriteBatch.Draw(imagem, posicao, Color.Yellow);
        //}
        }
}
